Suite  une discussion avec Anata hier sur #Jagfr, j'ai crit ce tuto pour garder une trace de ses explications.
Et qui sait, a servira peut-tre  quelqu'un.

Donc merci  Anata, car sans lui, je n'aurais jamais trouv le truc et j'aurais abandonn (faut dire que je n'tais pas encore sous pression :D)

Sujet : utiliser des .wav dans ses dveloppement Lynx

Outils ncessaire :
- wav2lsf
- bin2c
- compilo Lynx...

Premire chose, procurez un fichier .wav (pas trop gros quand mme)
L'idal semblant tre 8 bits mono, 8khz (de toutes manires, la Lynx ne peut pas faire beaucoup mieux, je rappelle que la stro de la Lynx 2 n'est pas une vraie stro, on peut juste affecter chacun des 4 canaux sonores  l'haut-parleur de droite ou gauche).

1/ convertir le fichier .wav
wav2lsf test.wav -o test.lsf

2/ convertir le fichier .lsf (Lynx Sound Format) en fichier .h
bin2c -i test.lsf -o test.h -l test -c
explication des options :
- i test.lsf : nom du fichier en entre
- o test.h : fichier en sortie
- l test : nom du tableau contenant le sample
- c : on gnre au format c

3/ voil, vous avez maintenant un fichier .h  inclure dans votre source c
Seule contrainte : ditez le fichier .h, la premire ligne est sous la forme :
unsigned char test[16256] =
ou le nombre (16256) correspond  la longeur du tableau, enlevez cette information

4/ votre source c ressemble  a :
#include <lynx.h>
#include <lynxlib.h>

#include "test.h"

#define BUTTON_OUTER   0x01
#define	BUFFER1	0x9000

// assembler vertical retrace syncronisation routine
void Vsync() 
{
#asm
vretrace:
	lda $fd0a
	bne vretrace
#endasm
}

main() {
	InitIRQ();
	CLI;

	SetBuffers(BUFFER1,0,0);
	SmpInit(0,1);
	EnableIRQ(1);

	for(;;)
	{
	    Vsync();
		if(joystick & BUTTON_OUTER)   SmpStart(test, 0);
	}
}


Le sample est jou  l'appui sur le bouton.
Je vous laisse consulter les docs BLL pour en savoir plus sur les fonctions Smp*

5/ remarques diverses
-  priori, vitez les samples trop long, la restitution tant plutt alatoire

- je me suis fait un fichier wav2h.bat pour raliser plus facilement les oprations 1 et 2 :

@echo off
cls
wav2lsf "%1.wav" -o "%1.lsf"
bin2c -i "%1.lsf" -o "%1.h" -l %1 -c

qui s'utilise comme a : wav2h test

- si vous voulez wav2lsf ou bin2c, n'hsitez pas  me demander

-  vous de jouer, mais n'oubliez pas que si vous sonorisez votre jeu, vous empcherez les braves gens (ceux l mme qui ralent contre les jeux silencieux sur ce forum) de dormir  la prochaine JC #gni#

- Vince, tu peux mettre se message en annonce si tu le juges utile...

- Vince, tu peux effacer ce message si tu prfres, mais laisses le au moins le temps que le message priv qui suit soit lu par la personne concerne :D

[Message priv]
Cool, maintenant que je sais jouer des .wav, j'aurais de beaux graphs
[/Message priv]